home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / encodings / uu_codec.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  4KB  |  116 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.4)
  3.  
  4. """ Python 'uu_codec' Codec - UU content transfer encoding
  5.  
  6.     Unlike most of the other codecs which target Unicode, this codec
  7.     will return Python string objects for both encode and decode.
  8.  
  9.     Written by Marc-Andre Lemburg (mal@lemburg.com). Some details were
  10.     adapted from uu.py which was written by Lance Ellinghouse and
  11.     modified by Jack Jansen and Fredrik Lundh.
  12.  
  13. """
  14. import codecs
  15. import binascii
  16.  
  17. def uu_encode(input, errors = 'strict', filename = '<data>', mode = 438):
  18.     """ Encodes the object input and returns a tuple (output
  19.         object, length consumed).
  20.  
  21.         errors defines the error handling to apply. It defaults to
  22.         'strict' handling which is the only currently supported
  23.         error handling for this codec.
  24.  
  25.     """
  26.     StringIO = StringIO
  27.     import cStringIO
  28.     b2a_uu = b2a_uu
  29.     import binascii
  30.     infile = StringIO(input)
  31.     outfile = StringIO()
  32.     read = infile.read
  33.     write = outfile.write
  34.     write('begin %o %s\n' % (mode & 511, filename))
  35.     chunk = read(45)
  36.     while chunk:
  37.         write(b2a_uu(chunk))
  38.         chunk = read(45)
  39.     write(' \nend\n')
  40.     return (outfile.getvalue(), len(input))
  41.  
  42.  
  43. def uu_decode(input, errors = 'strict'):
  44.     """ Decodes the object input and returns a tuple (output
  45.         object, length consumed).
  46.  
  47.         input must be an object which provides the bf_getreadbuf
  48.         buffer slot. Python strings, buffer objects and memory
  49.         mapped files are examples of objects providing this slot.
  50.  
  51.         errors defines the error handling to apply. It defaults to
  52.         'strict' handling which is the only currently supported
  53.         error handling for this codec.
  54.  
  55.         Note: filename and file mode information in the input data is
  56.         ignored.
  57.  
  58.     """
  59.     StringIO = StringIO
  60.     import cStringIO
  61.     a2b_uu = a2b_uu
  62.     import binascii
  63.     infile = StringIO(input)
  64.     outfile = StringIO()
  65.     readline = infile.readline
  66.     write = outfile.write
  67.     while None:
  68.         s = readline()
  69.         if not s:
  70.             raise ValueError, 'Missing "begin" line in input data'
  71.         
  72.         if s[:5] == 'begin':
  73.             break
  74.             continue
  75.     while None:
  76.         s = readline()
  77.         if not s or s == 'end\n':
  78.             break
  79.         
  80.         
  81.         try:
  82.             data = a2b_uu(s)
  83.         except binascii.Error:
  84.             v = None
  85.             nbytes = ((ord(s[0]) - 32 & 63) * 4 + 5) / 3
  86.             data = a2b_uu(s[:nbytes])
  87.  
  88.     if not s:
  89.         raise ValueError, 'Truncated input data'
  90.     
  91.     return (outfile.getvalue(), len(input))
  92.  
  93.  
  94. class Codec(codecs.Codec):
  95.     
  96.     def encode(self, input, errors = 'strict'):
  97.         return uu_encode(input, errors)
  98.  
  99.     
  100.     def decode(self, input, errors = 'strict'):
  101.         return uu_decode(input, errors)
  102.  
  103.  
  104.  
  105. class StreamWriter(Codec, codecs.StreamWriter):
  106.     pass
  107.  
  108.  
  109. class StreamReader(Codec, codecs.StreamReader):
  110.     pass
  111.  
  112.  
  113. def getregentry():
  114.     return (uu_encode, uu_decode, StreamReader, StreamWriter)
  115.  
  116.